package com.studyweb.service;

/**
 * 邮件服务接口
 * 
 * <p>定义邮件相关的业务逻辑操作，包括：</p>
 * <ul>
 *   <li>发送验证码邮件</li>
 *   <li>发送通知邮件</li>
 * </ul>
 * 
 * @author StudyWeb Team
 * @since 1.0.0
 */
public interface EmailService {

    /**
     * 发送验证码邮件
     *
     * @param email 收件人邮箱地址，不能为空
     * @param verificationCode 验证码，不能为空
     * @return boolean 发送是否成功
     * @throws Exception 发送过程中可能出现的异常
     * @apiNote 用于忘记密码时发送验证码
     */
    boolean sendVerificationCode(String email, String verificationCode);

    /**
     * 发送简单文本邮件
     *
     * @param to 收件人邮箱地址，不能为空
     * @param subject 邮件主题，不能为空
     * @param content 邮件内容，不能为空
     * @return boolean 发送是否成功
     * @throws Exception 发送过程中可能出现的异常
     */
    boolean sendSimpleEmail(String to, String subject, String content);

    /**
     * 发送HTML格式邮件
     *
     * @param to 收件人邮箱地址，不能为空
     * @param subject 邮件主题，不能为空
     * @param htmlContent HTML格式的邮件内容，不能为空
     * @return boolean 发送是否成功
     * @throws Exception 发送过程中可能出现的异常
     */
    boolean sendHtmlEmail(String to, String subject, String htmlContent);
}